// 用户信息路由处理函数
const Connection = require('mysql/lib/Connection')
const db = require('../db/index')
const bcrypt = require('bcryptjs')
// 获取用户信息
exports.getInfo = (req, res) => {
    db.getConnection((err, connection) => {
        if (err) {
            return res.cc(err)
        } else {
            const sql = 'SELECT id,username,nickname,email,user_pic FROM ev_users WHERE id = ?'
            connection.query(sql, req.user.id, (err, data) => {
                if (err) return res.cc(err)
                res.send({
                    status: 0,
                    message: '获取用户信息成功',
                    data
                })
            })
            connection.release()
        }
    })
}

// 修改用户信息
exports.updateuserinfo = (req, res) => {
    db.getConnection((err, connection) => {
        if (err) return res.cc(err)
        // 判断当前用户是否为本人或者管理员
        if (req.user.id == 1 || req.user.id == req.body.id) {
            const sql = 'UPDATE ev_users SET ? WHERE id = ?'
            connection.query(sql, [req.body, req.body.id], (err, data) => {
                if (err) return res.cc(err)
                if (data.affectedRows === 1) return res.cc('修改成功', 0)

                connection.release()
            })
            connection.release()
        } else return res.cc('没有修改权限')
    })
}

// 修改密码
exports.updatepwd = (req, res) => {
    db.getConnection((err, connection) => {
        if (err) return res.cc(err)
        // 判断当前用户是否为本人或者管理员
        if (req.user.id == 1 || req.user.id == req.body.id) {
            const sql = 'SELECT * FROM ev_users WHERE id = ?'
            console.log(req.body);
            connection.query(sql, req.body.id, (err, data) => {
                if (err) return res.cc(err)
                // 查询用户是否存在
                if (data.length !== 1) return res.cc('用户不存在')
                // 判断密码是否正确
                const isOk = bcrypt.compareSync(req.body.oldPwd, data[0].password)
                if (!isOk) return res.cc('密码不正确')
                // 密码正确修改密码
                const newPwd = bcrypt.hashSync(req.body.newPwd, 10)
                connection.query('UPDATE ev_users SET `password`=? WHERE id = ?', [newPwd, req.body.id], (err, data) => {
                    if (err) return res.cc(err)
                    if (data.affectedRows !== 1) return res.cc('密码修改失败，请稍后重试')
                    res.cc('密码修改成功', 0)
                })
            })
            // 释放连接
            connection.release()
        } else return res.cc('没有修改权限')

    })
}

// 修改头像
exports.updateAvatar = (req, res) => {
    db.getConnection((err, connection) => {
        if (err) return res.cc(err)
        const sql = "UPDATE ev_users SET user_pic=? WHERE id = ?"
        connection.query(sql, [req.body.avatar, req.body.id], (err, data) => {
            if (err) return res.cc(err)
            if (data.affectedRows !== 1) return res.cc('更新失败')
            res.cc('修改成功', 0)
        })
        connection.release()
    })
}